import { createStore } from "vuex";
import module1 from "./module1";
import module2 from "./module2";

// 创建一个新的 store 实例
const store = createStore({
  modules: {
    module1: module1,
    module2: module2,
  },

  // state是仓库里面存放数据的地方(全局数据)
  // 语法和组件的data是一样的
  // state() {
  //   return {
  //     count: 100,
  //     name: "zhangsan",
  //     age: 30,
  //     likes: "sleep",
  //     list: [],
  //     arr: [1, 2, 3, 4, 5, 6, 7, 8, 9],
  //   };
  // },

  // getters就相当于store里面的计算属性
  // getters: {
  //   oddArr(state) {
  //     return state.arr.filter((item) => item % 2);
  //   },
  // },

  // mutations里面是可以写函数，只能通过这里的函数来修改state的变量
  // mutations: {
  //   addCount(state, n) {
  //     // state.count++;
  //     state.count += n;
  //   },
  //   changeName(state, payload) {
  //     // mutations里面的函数是不允许写异步的
  //     // setTimeout(() => {
  //     state.name = payload;
  //     // }, 1000);
  //   },
  //   getData(state, data) {
  //     state.list = data;
  //   },
  // },

  // actions里面也是写函数的
  // actions里面是不能修改数据的，但是可以在这里去调用mutations的函数
  // actions: {
  //   changeName2({ commit }, payload) {
  //     setTimeout(() => {
  //       commit("changeName", payload);
  //     }, 1000);
  //   },
  //   getDataAsync({ commit }) {
  //     fetch("http://101.35.148.193:3000/api/rated/list")
  //       .then((response) => response.json())
  //       .then((res) => {
  //         // console.log(res);
  //         commit("getData", res.data);
  //       });
  //   },
  // getDataAsync({ commit }) {
  //   return new Promise((resolve, reject) => {
  //     fetch("http://101.35.148.193:3000/api/rated/list")
  //       .then((response) => response.json())
  //       .then((res) => {
  //         // console.log(res);
  //         commit("getData", res.data);
  //         resolve();
  //       });
  //   });
  // },
  // },
});

export default store;
